package cn.zf233.xcloud.service;

import cn.zf233.xcloud.commom.R;
import cn.zf233.xcloud.entity.User;
import cn.zf233.xcloud.vo.UserVo;

/**
 * Created by zf233 on 2020/11/4
 */
public interface UserService {

    R<UserVo> login(User user);

    R<UserVo> loginQq(User user);

    R<UserVo> codeLoginEmail(User user, String code);

    R<UserVo> codeLoginSms(User user, String code);

    R getLoginCodeEmail(User user);

    R getLoginCodeSms(User user);

    R applyForLogout(User user);

    R<UserVo> updateHeadUrl(User user, String url);

    R<UserVo> updatePassword(User user, String oldPassword);

    R<UserVo> updateNickname(User user);

    R rebindPhone(User user);

    R rebindEmail(User user);

    R<UserVo> rebindCheckPhone(User user, String code);

    R<UserVo> rebindCheckEmail(User user, String code);

    R<UserVo> getUserVoByPrimaryKey(Long userId);

    R<UserVo> getUserVoByUid(Long uid);

    void userLoginSuccessRecord(Long userId);

    R refreshUserLevelTask();

    void removeAndAlertUnauthenticatedUsers(boolean remove, boolean sendMsg);

    R agree(User user, Integer agree);

    R chart(User user);
}
